package com.atguigu.sparkstreaming.demos


import org.apache.spark.SparkConf
import org.apache.spark.streaming.dstream.{InputDStream, ReceiverInputDStream}
import org.apache.spark.streaming.{Seconds, StreamingContext}

/**
 * Created by Smexy on 2022/8/22

      批次： 3秒
      window: 3秒
      slide :  6秒

      window  < slide : 导致漏算(kafka除外)。

      今天上午演示的场景是从kafka去消费数据，忽略了kafka消费者消费的原理。
          kafka的消费者，从上次提交offsets的位置，继续往后消费，因此当你指定了窗口后，消费的原理不不会因为窗口而改变。
 *
 */
object WindowLostDataDemo {

  def main(args: Array[String]): Unit = {

    val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("My app")

    val streamingContext = new StreamingContext(conf, Seconds(3))

    val ds: ReceiverInputDStream[String] = streamingContext.socketTextStream("hadoop103", 8899)


    ds.window(Seconds(3),Seconds(6))
      .print(10000)


    streamingContext.start()

    streamingContext.awaitTermination()

  }

}
